CC = gcc
CFLAGS = -Wall -Wextra -I./inc
LDFLAGS = -L./lib -lthreads_pool -lpthread

BIN_DIR = ./bin
OBJ_DIR = ./obj
LIB_DIR = ./lib
INC_DIR = ./inc
SRC_DIR = ./src
TEST_DIR = ./test

TARGET = $(BIN_DIR)/threads_pool_test
TEST_SRC = $(TEST_DIR)/threads_pool_test.c
TEST_OBJ = $(OBJ_DIR)/threads_pool_test.o

.PHONY: all lib clean

all: lib $(TARGET)

lib:
	@$(MAKE) -C $(LIB_DIR)

$(TARGET): $(TEST_OBJ)
	@mkdir -p $(BIN_DIR)
	@$(CC) $^ -o $@ $(LDFLAGS)

$(OBJ_DIR)/%.o: $(TEST_DIR)/%.c
	@mkdir -p $(OBJ_DIR)
	@$(CC) $(CFLAGS) -c $< -o $@

clean:
	@$(MAKE) -C $(LIB_DIR) clean
	rm -rf $(BIN_DIR) $(OBJ_DIR)